package com.example.test;

import java.util.ArrayList;

import layout.elementoPublicacion;
import controller.Controlador;
import domain.PublicacionAndroidClass;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class LogeadoActivity extends ActionBarActivity {

	ListView publicacionesListView;
	MenuItem itemPublicar;
	
	class AdapterPublicaciones extends ArrayAdapter<elementoPublicacion>{
		Activity context;
		
		public AdapterPublicaciones(Activity context){
			super(context, R.layout.elemento_publicaciones, publicacionesTituloSub);
			this.context = context;
		}
		
		public View getView(int posicion, View view, ViewGroup parent){
			LayoutInflater inflater = context.getLayoutInflater();
			View item = inflater.inflate(R.layout.elemento_publicaciones,null);
			
			TextView titulo = (TextView) item.findViewById(R.id.titulo);
			titulo.setText(publicacionesTituloSub.get(posicion).getTitulo());
			
			TextView subtitulo = (TextView) item.findViewById(R.id.subtitulo);
			subtitulo.setText(publicacionesTituloSub.get(posicion).getSubtitulo());
			
			TextView usuario = (TextView) item.findViewById(R.id.usuario);
			usuario.setText(publicacionesTituloSub.get(posicion).getUsuario());
			
			return item;
		}
		
	}
	
	ArrayList<layout.elementoPublicacion> publicacionesTituloSub;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_logeado);

		publicacionesListView = (ListView) findViewById(R.id.publiacionesListView);

		ArrayList<PublicacionAndroidClass> publicaciones = Controlador
				.getPublicaciones();
		
		publicacionesTituloSub = new ArrayList<layout.elementoPublicacion>();

		for (int i = 0; i < publicaciones.size(); i++) {
			publicacionesTituloSub.add(new elementoPublicacion(publicaciones.get(i)
					.getTitulo(), publicaciones.get(i).getTexto(),publicaciones.get(i).getToken()));
		}
		
		AdapterPublicaciones adapter = new AdapterPublicaciones(this);
		
		publicacionesListView.setAdapter(adapter);
		
		publicacionesListView.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> adapter, View view,
					int position, long id) {
				
				LinearLayout ll = (LinearLayout) view;
				
				View tk = ll.getChildAt(2);
				TextView tv_token = (TextView) tk;
				
				View cm = ll.getChildAt(0);
				TextView comment = (TextView) cm;
				
			    // When clicked, show a toast with the TextView text
			    Toast.makeText(getApplicationContext(),
				"pos: "+tv_token.getText(), Toast.LENGTH_SHORT).show();
			    
			    Intent publicarAct = new Intent(LogeadoActivity.this,PublicacionActivity.class);
			    publicarAct.putExtra("tv_token",tv_token.getText());
			    publicarAct.putExtra("titulo",comment.getText());
			    startActivity(publicarAct);
			    
			}
		});
		
		
		
		
		
		
		

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.logeado, menu);
		
		
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		
		switch(item.getItemId()){
			case R.id.publicarMenuItem:
				Log.i("Publicar", "PUBLICAR!");
				Intent publicarAct = new Intent(LogeadoActivity.this,PublicarActivity.class);
        		startActivity(publicarAct);
				break;
			
			case R.id.mensajesMenuItem:
				Log.i("Mensajes","MENSAJES!");
				Intent mensajesAct = new Intent(LogeadoActivity.this,MensajesActivity.class);
        		startActivity(mensajesAct);
				
				
				break;
				
			case R.id.logoutMenuItem:
				Log.i("Logout","CYA NERD!");
				Intent mainactivity = new Intent(LogeadoActivity.this,MainActivity.class);
				domain.Sesion.username = "";
        		startActivity(mainactivity);
				
				break;
				
			case R.id.action_settings:
				Log.i("EHH?","Epic Nada");
				break;
		
		}

		

		return super.onOptionsItemSelected(item);
	}
}
